#pragma once
#ifndef BufferPoolInterface_hpp
#define BufferPoolInterface_hpp

#include<stdint.h>

namespace MMF 
{

    #define MMF_PAGE_SIZE 4096

    enum class MMFBufferPoolType
    {
        HOST,
        GPU_OPENCL,
    };

    class MMFBufferPoolInterface
    {

    public:

        virtual ~MMFBufferPoolInterface() {};
        virtual void* Allocate() = 0;
        virtual void Deallocate() = 0;
        virtual uint64_t Bytes() = 0;
        virtual MMFBufferPoolType Type() = 0;
    };
}

#endif